object Libs {

    /*** Android Components ***/
    const val APPCOMPAT = "androidx.appcompat:appcompat"
    const val CORE_KTX = "androidx.core:core-ktx"
    const val ACTIVITY_KTX = "androidx.activity:activity-ktx"
    const val FRAGMENT_KTX = "androidx.fragment:fragment-ktx"

    // Jetpack Ktx
    const val NAVIGATION_FRAGMENT = "androidx.navigation:navigation-fragment-ktx"
    const val NAVIGATION_UI = "androidx.navigation:navigation-ui-ktx"
    const val NAVIGATION_TEST = "androidx.navigation:navigation-testing"
    const val LIFECYCLE_EXT = "androidx.lifecycle:lifecycle-extensions"
    const val LIFECYCLE_COMPILER = "androidx.lifecycle:lifecycle-compiler"
    const val LIFECYCLE_LIVEDATA = "androidx.lifecycle:lifecycle-livedata-ktx"
    const val LIFECYCLE_RUNTIME = "androidx.lifecycle:lifecycle-runtime-ktx"
    const val LIFECYCLE_VIEWMODEL = "androidx.lifecycle:lifecycle-viewmodel-ktx"
    const val WORK_MANAGER = "androidx.work:work-runtime-ktx"
    const val HILT_WORK = "androidx.hilt:hilt-work"
    const val WORK_COMPILER = "androidx.hilt:hilt-compiler"

    // UI Components
    const val MATERIAL = "com.google.android.material:material"
    const val VIEWPAGER2 = "androidx.viewpager2:viewpager2"
    const val CONSTRAINT = "androidx.constraintlayout:constraintlayout"
    const val CARDVIEW = "androidx.cardview:cardview"
    const val RECYCLERVIEW = "androidx.recyclerview:recyclerview"
    const val BROWSER = "androidx.browser:browser"
    const val DRAWER_LAYOUT = "androidx.drawerlayout:drawerlayout"
    const val FLEXBOX = "com.google.android:flexbox"
    const val SLIDING_PANE_LAYOUT = "androidx.slidingpanelayout:slidingpanelayout"
    const val SECURITY_CRYPTO = "androidx.security:security-crypto"
    const val REFRESH = "io.github.scwang90:refresh-layout-kernel"
    const val REFRESH_HEAD = "io.github.scwang90:refresh-header-classics"
    const val REFRESH_FOOTER = "io.github.scwang90:refresh-footer-classics"
    const val MAGIC_INDICATOR = "com.github.hackware1993:MagicIndicator"

    // Room database
    const val ROOM_RUNTIME = "androidx.room:room-runtime"
    const val ROOM_COMPILER = "androidx.room:room-compiler"
    const val ROOM_KTX = "androidx.room:room-ktx"
    const val ROOM_TESTING = "androidx.room:room-testing"

    // play-services-base
    const val PLAY_SERVICES_BASE = "com.google.android.gms:play-services-base"

    // Map
    const val GOOGLE_MAP = "com.google.android.gms:play-services-maps"
    const val GOOGLE_LOCATION = "com.google.android.gms:play-services-location"
    const val MAP_UTILS = "com.google.maps.android:android-maps-utils"

    const val TAG_MANAGER = "com.google.android.gms:play-services-tagmanager"

    /*** Kotlin plugin ***/
    const val COROUTINES = "org.jetbrains.kotlinx:kotlinx-coroutines-core"
    const val COROUTINES_ANDROID = "org.jetbrains.kotlinx:kotlinx-coroutines-android"
    const val KOTLIN_STDLIB = "org.jetbrains.kotlin:kotlin-stdlib"
    const val COROUTINES_TEST = "org.jetbrains.kotlinx:kotlinx-coroutines-test"

    /*** Dagger Hilt ***/
    const val HILT_ANDROID = "com.google.dagger:hilt-android"
    const val HILT_COMPILER = "com.google.dagger:hilt-android-compiler"
    const val HILT_TESTING = "com.google.dagger:hilt-android-testing"
    const val HILT_NAVIGATION = "androidx.hilt:hilt-navigation-fragment"

    /*** RxJava 3 ***/
    const val RXJAVA = "io.reactivex.rxjava3:rxjava"
    const val RXANDROID = "io.reactivex.rxjava3:rxandroid"
    const val RXRELAY = "com.jakewharton.rxrelay3:rxrelay"

    /*** Json Parser ***/
    const val MOSHI = "com.squareup.moshi:moshi-kotlin"
    const val MOSHI_ADAPTER = "com.squareup.moshi:moshi-adapters"
    const val MOSHI_CODEGEN = "com.squareup.moshi:moshi-kotlin-codegen"
    const val GSON = "com.google.code.gson:gson"

    /*** Image Loader ***/
    const val GLIDE = "com.github.bumptech.glide:glide"
    const val GLIDE_COMPILER = "com.github.bumptech.glide:compiler"
    const val GLIDE_OKHTTP = "com.github.bumptech.glide:okhttp3-integration"
    const val GLIDE_TRANSFORM = "jp.wasabeef:glide-transformations"

    /*** ZXING ***/
    const val ZXING = "me.dm7.barcodescanner:zxing"

    /*** MMKV ***/
    const val MMKV = "com.tencent:mmkv-static"

    /*** Facebook ***/
    const val FACE_CORE = "com.facebook.android:facebook-core"
//    const val FACE_LOGIN = "com.facebook.android:facebook-login"

    /*** AppsFlyer ***/
    const val APPSFLYER = "com.appsflyer:af-android-sdk"
    const val INSTALL_REFERRER = "com.android.installreferrer:installreferrer"
    const val HOME_REFERRER = "com.miui.referrer:homereferrer"

    /*** OkHttp ***/
    const val OKHTTP = "com.squareup.okhttp3:okhttp"
    const val OKHTTP_LOGGING = "com.squareup.okhttp3:logging-interceptor"
    const val OKIO = "com.squareup.okio:okio"
    const val RETROFIT = "com.squareup.retrofit2:retrofit"
    const val RETROFIT_MOSHI_CONVERTER = "com.squareup.retrofit2:converter-moshi"

    /*** DateTime ***/
    const val JODA_TIME = "joda-time:joda-time"
    const val JODA_ANDROID = "net.danlew:android.joda"

    /*** Animation ***/
    const val LOTTIE = "com.airbnb.android:lottie"

    /*** Log print ***/
    const val TIMBER = "com.jakewharton.timber:timber"

    const val EVENT_BUS = "org.greenrobot:eventbus"

    const val BIOMETRIC = "androidx.biometric:biometric-ktx"
    const val SINGPASS_WEBVIEW = "io.github.singpass:singpass-webview-client"

    /*** blur ***/
    const val BLURRY = "jp.wasabeef:blurry"

    /*** PdfViewer ***/
    const val PDF_VIEWER = "com.github.barteksc:android-pdf-viewer"

    /*** MarketingCloud ***/
    const val MARKETING_CLOUD = "com.salesforce.marketingcloud:marketingcloudsdk"

    /*** MarketingCloud ***/
    const val EVERGAGE = "com.evergage.android:evergage-android-sdk"

    const val MASK_EDITTEXT = "io.github.vicmikhailau:MaskedEditText"

    /*** Unit Test ***/
    const val JUNIT = "junit:junit"
    const val RULES = "androidx.test:rules"
    const val RUNNER = "androidx.test:runner"
    const val TEST_CORE = "androidx.test:core-ktx"
    const val MOCKITO_CORE = "org.mockito:mockito-core"
    const val MOCKITO_KOTLIN = "com.nhaarman:mockito-kotlin"
    const val FRAGMENT_TEST = "androidx.fragment:fragment-testing"
    const val JUPITER = "org.junit.jupiter:junit-jupiter"
    const val JUPITER_ENGINE = "org.junit.jupiter:junit-jupiter-engine"
    const val ROBOLECTRIC = "org.robolectric:robolectric"
    const val JUNIT_EXT = "androidx.test.ext:junit"
    const val JUNIT_KTX = "androidx.test.ext:junit-ktx"
    const val ARCH_TESTING = "androidx.arch.core:core-testing"
    const val MOCKK = "io.mockk:mockk"

    /*** Android chuck ***/
    const val CHUCK_DEBUG = "com.readystatesoftware.chuck:library"
    const val CHUCK_RELEASE = "com.readystatesoftware.chuck:library-no-op"

    /*** Android Test ***/
    const val ESPRESSO_CORE = "androidx.test.espresso:espresso-core"
    const val ESPRESSO_CONTRIB = "androidx.test.espresso:espresso-contrib"

    // google play review
    const val GOOGLE_PLAY_REVIEW = "com.google.android.play:core:1.10.0"

    /********* singpass ******************/

    const val OPEN_ID = "net.openid:appauth:0.11.1"
    const val CUSTOM_TABS = "androidx.browser:browser:1.5.0"
    const val HTML_FONT = "com.gitee.chockqiu:html-font-face:1.0"

    // ******* facebook shimmer
    const val SHIMMER = "com.facebook.shimmer:shimmer:0.5.0"
    const val TEXT_RECOGNITION = "com.google.mlkit:text-recognition:16.0.0"
    private const val camerax_version = "1.2.0-alpha02"
    const val CAMERA_CORE = "androidx.camera:camera-core:$camerax_version"
    const val CAMERAX = "androidx.camera:camera-camera2:$camerax_version"
    const val CAMERAX_LIFECYCLE = "androidx.camera:camera-lifecycle:$camerax_version"
    const val CAMERAX_VIEW = "androidx.camera:camera-view:$camerax_version"
}
